﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EstacionDePoder.Codigo;
using System.Drawing;
using System.IO;
using BLLEP.Funcionalidad;
using BLLEP;

namespace EstacionDePoder.Tienda
{
    public partial class PagarTransferencia : FormGenerico
    {
        public int IdPedido 
        {
            get { return int.Parse(Request.QueryString["idPedido"]); }
        }


        private void CargarDatos()
        {
            lblTitular.Text = Titular;
            lblNroCuenta.Text = NroCuenta;
            lblCBU.Text = CBU;
            lblCUIL.Text = CUIL;
            lblDni.Text = DNI;
            lblEmail.Text = MailVentas;

            EP_PagoTransferencia pago = new BLLPagoTransferencia().TraerPago(User.Identity.Name, IdPedido);
            lblTotal.Text = "$" + new BLLPedido().CalcularTotal(pago.EP_Pedido).ToString("N2");
            if (pago != null)
            {
                lnkVerArchivo.NavigateUrl = "~/MostrarImagen.aspx?idPedido=" + IdPedido;
                lnkVerArchivo.Text = "Click Aquí";
            }
        }

        private void ValidarDatos()
        {
            BLLPedido bllPedido = new BLLPedido();
            EP_Pedido pedido = bllPedido.Traer(IdPedido);

            if (pedido == null || !pedido.EP_Usuario.Email.ToLower().Equals(User.Identity.Name))
                Response.Redirect("~/Default.aspx");
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ValidarDatos();
                CargarDatos();
            }
        }

        protected void btnSubirArchivo_Click(object sender, EventArgs e)
        {
            try
            {
                if (fuComprobante.HasFile)
                {
                    string[] array = fuComprobante.FileName.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries);
                    string formato = array[array.Length - 1];

                    if (!FormatosImagenesValidos.ToLower().Contains(formato.ToLower()))
                    {
                        lblResultado.Text = "El formato del archivo NO ES VÁLIDO";
                        lblResultado.ForeColor = Color.Red;
                        return;
                    }

                    int archivo = 1;
                    string archivoCompleto = "";

                    do
                    {
                        archivoCompleto = MapPath(CarpetaComprobantes + archivo.ToString() + "." + formato);

                        if (File.Exists(archivoCompleto))
                            archivo++;
                        else
                        {
                            File.WriteAllBytes(archivoCompleto, fuComprobante.FileBytes);
                            BLLPagoTransferencia bllPagoTransferencia = new BLLPagoTransferencia();
                            string[] arrayNombreSeguro = fuComprobante.FileName.Split(new string[] { @"\", @"/" }, StringSplitOptions.RemoveEmptyEntries);
                            bllPagoTransferencia.ActualizarComprobante(User.Identity.Name, IdPedido, archivo.ToString() + "." + formato);
                            bllPagoTransferencia.GuardarCambios();

                            lblResultado.Text = "Comprobante subido con éxito";
                            lblResultado.ForeColor = Color.Green;
                            lnkVerArchivo.NavigateUrl = "~/MostrarImagen.aspx?idPedido=" + IdPedido;
                            lnkVerArchivo.Text = "Click Aquí";
                            break;
                        }
                        
                    } while (File.Exists(archivoCompleto));
                }
            }
            catch (Exception ex)
            {
                lblResultado.Text = "Ha ocurrido un error durante la subida del archivo";
                lblResultado.ForeColor = Color.Red;
            }
            
        }
    }
}